深度|数据智能在二手车业务场景中的探索与沉淀——关于用户流量的预测与识别
导语
本文主要介绍了数据智能二手车业务场景中的探索与沉淀——关于用户流量的预测和识别,内容翔实,可以启发大家结合当下自己的业务场景进行深挖和赋能,共同交流思路与方案,希望对技术同学尤其是业务侧的技术同学有所帮助。
背景
场景AI的赋能需要对业务有深入的理解,智能方向的考虑与分析要从业务本身的特性、特质出发,通过场景全链路的分析并结合用户业务数据积累,在每个关键节点进行赋能与提效。58集团业务部门的指标是围绕收入进行的,在产品的全连接后,所有对于有助于连接转化效率的提升的内容和考虑尤为重要,这就要求我们在实际业务场景中,结合用户行为的每个关键的行为节点进行深入的分析和思考,通过用户全链路的分析并结合平台用户业务数据的不断沉淀,在不同的行为环节进行辅助提效 - feed(信息流)场景中用户的关键行为主要分拆为4个阶段:1.流量的接入 2.检索 3.点击 4.电话本文的技术内容也是围绕这4个部分的技术点进行展开说明。- 今天文章整理的是关于第一个行为环节的内容 - Part1关于流量的预测与识别 -
内容部分-用户全链路的分析-流量的预估
我们通过用户全链路的分析,将用户的关键行为拆分了4个主要阶段:1.流量的接入 2.检索3.点击4.电话如图1中所示是我们对每个环节技术内容做的摘要整理,下文中会针对这第一个环节 - “流量的预估”进行展开说明:1.流量的接入环节 - 流量预估在流量的接入环节,我们希望具备两种能力:一种是对用户身份的预估与分层,一种能力是我们需要对已有历史行为的用户进行准确的兴趣描述。
1.1 关于用户分层的具体做法:
1.我们先期定义了5种用户的身份:个人、商家/中介、类平台、爬虫和异常流量;
2.对用户的行为数据进行统计和分析,抛离异常流量及爬虫流量,并结合聚类观察特征数据的聚合情况;
3.同时也会通过模型对用户的身份进行概率性预估,输出身份概率。
用户身份的预估是后续多个业务场景策略干预的基础:比如我们将身份预估的结果同电话系统结合,对于确定识别的个人直接绑定AxB的策略,对于识别的商家/中介或类平台,我们可以计算浮动因子干预号码有效绑定时间,这些均有助于提高号码资源的使用效率,降低串号率。1.2 流量的接入- 关于用户的兴趣描述:这边之所以没有使用“用户画像”这个词,是因为我们理解在单品类(info - 车)的业务场景中,画像的概念是发散的,推荐的商品是多样的、支持多场景的,而“兴趣描述”和单品类业务的描述更为贴切,比如我们会将用户的行为抽象成info-车 的标签、或标签的组合,结合特征工程分析业务特征的权重、进行特征的挖掘和组合,同时也会分析用户在某些特征上的兴趣度,并作为系数干预召回模型。正如所有的推荐场景都是与业务强相关的,兴趣的准确描述就需要对业务特性有深入的理解和分析,这是提供准确召回能力的基础。图2完整描述了我们基于协同过滤对用户兴趣进行描述- 作为信息召回的基础,并结合后续的特征工程、排序、策略&规则、ABtest在提升线上feed场景转化效率中的流程和思路(关于特征工程、排序等在后续系列的文章中进行整理):
(图2)
说明:目前召回的模型是 通过用户行为的分析基于itemCF计算标签组合的相似度矩阵,通过用户行为抽象的TopN进行模型的匹配,获得检索条件 。当然getInfo这部分还需要召回策略的融合,这个在后面会详细讲到,总体来说“用户 - 兴趣的描述”是后续信息召回的基础。
具体流程描述
为什么要做流量的识别 - 关于应用场景的考虑?
(图3)
1.用户的身份预估的结果,可以切入业务场景的各个环节,辅助干预策略。也可以作为其他智能系统的前置条件或基础;2.兴趣描述是不同场景信息召回的基础。第二阶段:数据的统计与分布的观测有助于我们下阶段特征的粗选,通过对样本聚类的结果观测数据分组的效果,聚类的效果清晰、良好可被直接在样本数据的分类上进行使用,也可以将聚类的结果作为一组新的特征参与下个阶段的监督学习。目前使用了K-Meams、GMM、DBSCAN 3种聚类的算法进行实验和对比,PCA降维后观测 K-Meams 聚类效果更好一些(起初尝试2-10个分类,肘部法则确定分5类的时候整体的距离紧凑度最好,这正好对应我们先前定义的5种身份类型),在监督学习部分使用 LR、XGBOOST+FM 进行模型的训练,样本是清洗后的历史行为(关键行为特征的count),在WPAI上模型的auc在0.67左右。
总结该阶段整体的操作流程:1 行为定义 → 2 数据抽取 → 3 统计 → 4 区间调整 → 5 观测结果&分析。 2.1 数据的统计与分析样本的选取需要从用户的行为轨迹进行分析,用户操作路径的关键行为统计和分析 - 可用于指导下阶段特征的选取及区间阈值的定义。用户的行为轨迹:1 曝光 → 2 检索 → 3 点击 → 4 浏览(停留时间) → 5 电话我们抽取的用于分析的目标数据 :cookie- 86.7w 对应 ip - 67.6w,将这些数据对应用户行为轨迹做漏斗的分析,通过线箱分析,可以帮助我们确定数据离群点,选取有效数据并划定特征的取值范围,该过程分析思路如图5:
(图7)
关于用户身份的预估同业务场景结合部分,我们选取了电话场景,电话场景的赋能点主要是提高号码资源的使用效率、降低串号率:
1.通过身份的预估,帮助干预号码的回收机制;2.识别的身份结合IDMapping用户数据的留存,可以辅助进行智能AxB的绑定(AxB是一种通讯绑定机制,对号码资源的使用周期理论上可以无限延长);3.cvr拨打的预估模型可以间接的支持转化的提升(通过模型对拨打概率进行预估)。前面提到针对有历史行为的用户,我们做同IDMapping映射的用户数据仓储,并持续积累这些数据,业务实现接入的大部分工作都通过离线计算完成,离线处理用户的历史数据做:特征提取 → 身份预估模型 → 用户分类结果(概率)→ redis → 场景的使用, 整体的流程如图8:
商家用户样本的标记过程:
1.手机号码是座机的用户,标定为商家;
2.有过回拨的用户标注为商家;
3.结合业务的数据留存,如来电通投诉电话被客服明确标记的商家主叫号码;
4.分析拨打行为数据,将30天内拨打频率较高的用户进行剥离,进行商家判定(历史信息查询、电话录音等),并采用无偏估计的方式进行信息验证。
个人用户样本的标注过程:1.选取检索、点击、获取号码、拨打相对合理的数据,先验定义为个人;
2.通过听语音人肉的方式确定这部分样本的准确性,并标注为个人,作为种子数据;
3.结合种子数据,计算样本“皮尔逊系数” 𝑟,将𝑟 > 0.9的样本标记为个人;
4.在样本不足的情况下采用随机复制的的方式对样本数量进行扩充。
2.3 cvr - 拨打的预估模型cvr模型的预估运用在号码的回收环节,将拨打预估转化最低的作为优先征用的资源进行释放操作,维护资源列队,以达到提高号码资源使用效率的目的。目前cvr预估不使用强策略干预线上,仅取了部分流量进行实验评估,迭代模型的训练。cvr预估的流程如图9:1.在单一品类的业务场景中不需要画像的概念,只需要描述用户的兴趣,用户兴趣合理准确的描述是信息-infos召回的基础;
2.受限于平台用户留存度低和计算成本的考虑,所以我们选择基于信息(车源)的维度挖掘商品之间的相似度,并结合用户行为的topN进行召回(itemCF作为召回的基础);
3.基于信息的相似度矩阵的计算需要确认特征&特征组合作为查询条件,这边需要考虑特征的选取;
4.关于相似度计算 - 算法的选择需要考虑样本的特点和场景的意图;
5.二手车基础的数据仓储;
用户兴趣描述及召回的整体流程- 如图11:1.数据仓储用来存储和分析用户的点击行为,对数据进行清洗、采样,作为0 1的基础样本数据;
2.结合特征工程分析的结果选定特征并进行特征组合 - 即标签,标签可对应到信息的检索条件,后面计算信息的相似度矩阵,其实是标签组合的相似度矩阵,这边选定的标签是“车系” + “价格区间”;
3.对比相似度计算公式,结合样本 0 1 的特点,这边选定使用 Jaccard 进行标签-相似度矩阵的计算;
4.离线计算的相似度矩阵作为基础的topN条件匹配库 - redis;
5.抽取数据仓库中用户的历史做标签的映射,userID -(车系x + 价格y),匹配相似度矩阵,选取topN个标签组合作为这个用户下次召回的N个检索条件;
6.用户id - topN 固化redis,用于用户的兴趣召回,用户的当前行为也会实时更新topN条件,影响下一次getList的查询结果;
在第二版的用户用户兴趣描述中,我们开始扩展标签的组合、扩展矩阵的能力,做信息(内容)标签挖掘的同时,围绕特征工程分析用户到业务不同属性的专注度,作为系数干预召回模型。 3.2关于二手车数据仓储:随着业务数据分析内容的增多,我们需要统一数据口径,提供通用、准确的数据分析能力,从16年开始我们着手构建二手车业务的基础数据仓储,仓储整体分了两个部分,参考图12:(图13)
1.Jaccard距离用于描述两个集合中不同元素占所有元素的比例来衡量两个集合的区分度,Jaccard系数等于样本集交集与样本集合集的比值;
2.欧氏度量衡量数值上差异的绝对值,距离度量会受指标不同单位刻度的影响,所以一般需要先进行标准化,比如对数据做归一化处理,同时距离越大,个体间差异越大;
3.空间向量余弦夹角的相似度度量不会受指标刻度的影响,余弦值落于区间[-1,1],值越大,差异越小;
4.余弦相似度衡量的是维度间相对层面的差异,一种长度与方向的度量所造成的不同,余弦相似度只在[0,1]之间
3.4 关于实时 + 离线的召回方式:目前的召回方式支持实时和离线两种信息的召回方式,通过用于的历史行为生成相似度矩阵的模型,固化存储用户的id和兴趣topN(离线场景),redis保存用户兴趣,支持get标签-通过ses进行检索。具体的流程如下图14:1.以协同过滤的模型作为基础的召回策略,提供数据基础;
2.针对冷启动的问题会结合热门的召回 + ses的随机召回方案,这边会按城市、天的维度离线计算热门信息,热门的策略也被作为补余策略的一种;
3.同时召回的信息会结合时间的衰减因子(通过点击-时间计算)进行升、降权的处理。
3.6 关于兴趣的描述及线上应用效果的反馈:基础的协同过滤结合多策略融合的召回在线上场景进行了多组的实验,并持续优化和迭代这个过程,截止到到今年4月份,我们选取了10日的数据进行有、无模型干预的效果对照(场景 - 二手车大类页“猜你喜欢20%流量”),模型干预对于ctr1的提升为 4.92%,对ctr2的提升为5.99%,效果比较稳定,这个效果还是比较好的,如图15:「关于召回率&准确率的分析」- 可以帮助我们确定合理的标签范围,及top-N的长度,经过多组线上实验的效果对照,我们最终将N的长度确定为10,这几乎是召回率和准确率交叉的点,基本的分析结果如下图16:
1.召回率的定义 = size(协同过滤TopN推荐item集合∩用户发生过行为的item集合)/ size(用户发生过行为的item集合) ;
2.准确率的定义 = size(协同过滤TopN推荐item集合∩用户发生过行为的item集合)/ size(协同过滤TopN推荐item集合);
3.7 关于“兴趣描述 ”下个阶段思考尝试的方向:关于“流量 - 兴趣描述”下个阶段(2.0)主要从有下面4方面的思考,详细参考图17:1.以协同过滤的召回为基础 - 扩展特征的组合(计算二次特征的组合)扩展相似度矩阵的适应能力;
2.塑造人的基于业务品类的标签,描述相关属性的兴趣度,作为系数干预模型;
3.挖掘信息的标签,提取信息的特征,做关联,也包含信息的质量、完整度、吸引力;
4.商家的信用等级也会作为信息优选的参考条件;
关于相似度矩阵能力的扩展 - 矩阵的生成、使用,参考目标人的业务属性个性度,从属性个性度的角度出发考虑特征标签的组合,特征的兴趣度作为干预系数,并考虑采用多矩阵协同的召回方案,扩展特征的选取和特征的组合方式,加入更多特征组合的实验,并对矩阵的做持续的评测。关于特征工程部分 - 需要加深对业务理解和宏观特征的分析,做特征的组合,持续特征权重的分析。考虑从info - content中挖掘品类属性的关系 - 从信息特征进行聚合,如车辆级别、驱动类型、保值能力、省油、白菜价、等,按特征、特征组合汇总的信息支持兴趣专注度的召回,同时可丰富特征工程的参考维度。
总结
整体来看,用户流量的接入环节是平台链路的第一个环节,兴趣的准确描述是后续信息召回的基础,用户身份的预估可以为后续不同业务场景的决策提供干预和参考。至此关于《数据智能在二手车业务场景中的探索与沉淀 - Part1 关于用户流量的预测与识别》这部分内容整理结束,在后面分享中会继续针对Part2 - 用户检索&标签挖掘部分的内容进行整理和分享。另外也感谢我的领导在整个过程中所给予的宝贵思路与建议!目前技术团队在持续引进优秀的人才,感兴趣的同学欢迎简历至:lixd@58.com,也可以通过这种方式同我建立交流。作者简介李晓东 / 58集团 高级技术经理2015年1月加入58集团二手车技术团队,负责二手车商业、商家服务、信息、数据智能、移动端技术等相关服务平台的开发及管理工作。
相关推荐:
机器学习在58二手车估价系统实践
面向并行研发的58同城Android端IM模块发展演变
魔镜—58可视化数据智能平台架构与实践
福利环节
好的内容需要分享扩散,比如今天这篇👆👆👆
为了鼓励优质内容传播,【58技术】公众号之后会不定时设置福利活动奖励“优质内容推手”:
转发本篇内容到朋友圈并发表任意推荐阅读评论,然后将转发截图上传至微信公众号后台,第8、58、88位上传截图的同学将会无条件获得50元京东购物卡奖励!
做朋友圈的KOR(Key Opinion Reader),传播优质内容,手有余香
END